package com.amway.qy.core.service;

import com.amway.qy.resource.member.QyMember;
import com.amway.qy.resource.member.QyMemberBatchDeleteReq;
import com.amway.qy.resource.result.BaseResult;
import com.amway.qy.resource.result.member.QyMemberListResult;
import com.amway.qy.resource.result.member.QyMemberResult;

public interface QyMemberService extends QyBaseInteractiveService{

	/*
	 * Create
	 */
	BaseResult createMember(QyMember member);
	String createMemberInRaw(QyMember member);
	
	/*
	 * Update
	 */
	BaseResult updateMember(QyMember member);
	String updateMemberInRaw(QyMember member);

	/*
	 * Delete
	 */
	BaseResult deleteMember(String userId);
	String deleteMemberInRaw(String userId);
	
	/*
	 * Get member details
	 */
	
	QyMemberResult getMember(String userId);
	String getMemberInRaw(String userId);
	
	/*
	 * Batch Delete
	 */
	BaseResult batchDeleteMember(QyMemberBatchDeleteReq members);
	String batchDeleteMemberInRaw(QyMemberBatchDeleteReq members);
	
	/*
	 * List simple information of Member who under specific department
	 */
	QyMemberListResult listMemberByDept(Integer deptId);

	QyMemberListResult listMemberByDept(Integer deptId, String fetch_child, Integer status);

	String listMemberByDeptInRaw(Integer deptId, String fetch_child, Integer status);
	
	
	/*
	 * List details information of member who under specific department.
	 */
	QyMemberListResult listMemberDetailsByDept(Integer deptId);
	String listMemberDetailsByDeptInRaw(Integer deptId);
	String listMemberDetailsByDeptInRaw(Integer deptId, String fetch_child, Integer status);
	QyMemberListResult listMemberDetailsByDept(Integer deptId, String fetch_child, Integer status);
}